package com.itcam.interview.pro00.disignmodel.decoration;

/**
 * 具体装饰器类，用于为饮品添加牛奶调料。
 * 该类继承自 CondimentDecorator 抽象类，实现了具体的装饰逻辑。
 */
// 具体装饰器：牛奶
class Milk extends CondimentDecorator {
    // 被装饰的饮品对象
    Beverage beverage;

    /**
     * 构造函数，用于初始化 Milk 装饰器。
     * @param beverage 被装饰的饮品对象
     */
    public Milk(Beverage beverage) {
        // 保存被装饰的饮品对象
        this.beverage = beverage;
    }

    /**
     * 重写父类的 getDescription 方法，用于获取添加牛奶后的饮品描述。
     * @return 添加牛奶后的饮品描述
     */
    @Override
    public String getDescription() {
        // 在原饮品描述后添加牛奶信息
        return beverage.getDescription() + ", Milk";
    }

    /**
     * 重写父类的 cost 方法，用于计算添加牛奶后的饮品价格。
     * @return 添加牛奶后的饮品价格
     */
    @Override
    public double cost() {
        // 原饮品价格加上牛奶的价格
        return beverage.cost() + 0.5;
    }
}
